自鯖建立 1.5:コマンドとか操作とかひとまずのメモ(Ubuntu)
⭐コマンド・操作の基本・用語などをちょっとメモ
自鯖建てる手順で使う基本的な項目を選びました
前提:Misskey自鯖建立(XServerVPS)メモ【自由研究】
前:自鯖建立 1:ひとまずのセットアップまで - Misskey
OSは前までのページの手順通りUbuntuです。
Linuxとか触ったことねーー知らねーーという人(自分)用
合ってるか知らないので本当のことは詳しい人に聞こう
後の手順が冗長になりすぎないように、予めわかっているといいかもしれないことをいろいろこのページに書きましたが、わからないことはその都度調べればいけると思います
言葉が意味わかんねー
ググる
シェル、ターミナル、コンソール、コマンドライン #Terminal - Qiitaなど…
ふ、ふーん…
こんな感じで理解した
ターミナル
もともとは画面ついてる機械のこと
ターミナルのエミュレータという意味で黒い画面はよくターミナルと言われてる気がする
コマンドライン
入力する行のこと
黒い画面の一番下の行
黒い画面に含まれているので画面のことをコマンドラインと言ってるように見えるときもある
コンソール
(?_?)
プロンプト
コマンドラインの先頭に表示される$とかのこと
ここに入力を待ってますよ~(促す)の意味
Tera Termでのコピペ
ctrl+は別の操作。
ペースト
alt+V
もしくは右クリック(初期設定)
できなかったら設定→その他の設定から変更
コピー
マウスで選択しただけでコピーされる(初期設定)
もしくはalt+C
練習台
JSLinuxというやつで、手元にLinux環境がなくてもブラウザ上でコマンドを練習できる。
UbuntuはLinuxベース。
こういうので練習すればサーバー壊す心配なくて安心。自分のサーバーと同じように使えるわけではないので、この後の手順で新規ユーザー作ってからサーバーつつこう
rootで遊ぶのはやめよう
エラーが出たら
エラーっぽい文言が出たらコピペして検索したり、複雑だったらチャッピーとかに聞くとわりとわかります(自分固有の情報には気をつけて)
同じエラーを出している人がいますからね
パスについて
ファイルやディレクトリの場所の表し方。
ルートディレクトリ:
一番元のディレクトリ。
この中にhome、etc、binなど全部のディレクトリがある。
/:
ルートディレクトリのこと。
ホームディレクトリ:
ユーザーごとのディレクトリ。/homeの中にある。
ただしrootユーザーのホームディレクトリは/root。
~/:
ログインユーザーのホームディレクトリ。
hashiyaでログインしているなら、/home/hashiyaのこと。
~hashiya:
hashiyaというユーザーのホームディレクトリ。
./:
現在いるディレクトリ(カレントディレクトリ)のこと。
../:
親ディレクトリのこと。
今/home/hashiyaディレクトリにいるなら、/homeのこと。
ファイルの編集
あるファイルに書き込むには、コマンドを使ってもエディタを使ってもできる。
エディタ使うと、ほかに何が書いてあるか分かりやすい。
nanoエディタが初心者にもよいらしい。
操作方法が表示されている。
vimというエディタもある。
nanoエディタの使い方
nanoでエディタを開く。パス指定もできる。
^はctrl、M-はalt。
Tera Termでaltが押せるためには、設定からMetaキーを有効にする。
他の操作:nanoの公式チートシート
https://gyazo.com/e592d4a146be04014c4e622a1936e742
アクセス権限
詳しい人に聞こう
あるファイルに対して 読み取り・書き込み・実行 というそれぞれの動作が行えるためには、そのユーザーに該当する権限が与えられている必要がある
権限がないと、ファイル書き込めない〜とか実行できない~とかがある
コマンドで永続的または一時的に変更できる
よく使う簡単なコマンド
先頭の$は目印なだけ(プロンプト)で、入力しない。パスは例。
ファイル操作系
code:bash
$ ls
# 現在のディレクトリにあるファイルを一覧。(list)
$ ls -a
# 隠しファイル(.で始まるファイル)も含めて一覧。
$ ls -lh
# 詳細情報(ファイルサイズ、権限、作成日時など)を、見やすい単位のファイルサイズで一覧。
# -l(リスト)と--human-readableの組み合わせ。
$ ls /etc/ssh
# 例: /etc/ssh ディレクトリの中身を一覧表示。
$ ls -alh /etc/ssh
# 組み合わせ例。
$ cd
# ホームディレクトリ(/home/hashiya)に移動。(change directory)
$ cd ~/directory
# 例:/home/hashiya/directoryというディレクトリに移動。~はホームディレクトリ。
$ touch ~/newfile.txt
# 例:ホームディレクトリにnewfile.txtという空のファイルをつくる/触る(タイムスタンプを更新)。
$ cat ~/newfile.txt
# 例:ホームディレクトリのnewfile.txtファイルの中身をターミナル画面に表示(concatenate 本来文字列結合するコマンドらしい)
$ nano ~/newfile.txt
# 例:nanoエディタでホームディレクトリのnewfile.txtを開く
$ cp original.txt copied.txt
# 例:今いるディレクトリのoriginal.txtを、copied.txtという名前で同じディレクトリに複製
# ディレクトリが違う場合はパスで指定。
お役立ち系
code:bash
$ echo $SHELL
# echoは後の文字列や変数の値を返す(エコー)
# 例:$SHELLという環境変数には、ログインシェルのパスが格納されている。今使ってるシェルではない。シェルについては後述。
# 出力例:/bin/bash
$ ls --help
# 例:ls コマンドのヘルプを表示(日本語の部分もある)。使えるオプションも見られる。
$ man ls
# 例:ls コマンドのマニュアルを表示(英語)。qキーで閉じる。
ヘルプについて
参考:Linuxコマンドの公式のドキュメントってあったりしますか? - Quora
ページャーについて
manとか使うと大量のテキストが出てきてコマンドラインがどっかいくことがある。ページャーというらしい。デフォルトではlessというページャーらしい。
qでコマンドラインに戻る。
/キーワードで検索。
ユーザー関係
code:bash
$ who
# ログイン中のユーザーを表示
# 今あるセッションを確認するのに使う。
$ whoami
# 今どのユーザーとしてログインしているか表示
$ who am i
# whoの形式で自分だけ表示
$ sudo ls
# 例:rootとしてlsコマンドを実行。
# switch user doとかsubstitute doとかsuperuser doとか…よくわからん
# sudo権限がないと使えないコマンド。
# sudo+コマンドでrootとしてコマンドを実行できる。lsではあんま使わないかも…アップデートする時とか使う。
# rootは普通はすべてのファイル・ディレクトリに完全なアクセス権を持っているので、rootでないと読み取れないファイルを見たりできる。
$ sudo -u hashiya ls
# 例:hashiyaとしてlsを実行。
$ su hashiya
# 例:hashiyaユーザーにswitch userする。普通パスワードを求められる?
# オプションなしだとrootに切り替える。sudo権限あればあんまり使わないのか?むやみにrootを使わない方がいいらしい
$ exit
# ログアウト、現在のセッションを終了。最後にはこれ
ほか
code:bash
$ systemctl
# systemdというシステムを操作するコマンドらしい
$ systemctl status サービス名
# あるサービスの詳細を見る。動いているか見たいときなど
$ systemctl list-unit-files -t service
# 今ある全てのサービスの実行状態を見る。
# --type=serviceのこと
サービス?
裏で動いてるプログラムのことらしい
コマンドの後につけるハイフンなんとか
$ ls -aみたいなやつ
コマンドのオプションの表記などに使う。
$ ls -aと$ ls --allは同じ意味。($ ls --helpに載ってる)
オプションが1文字の省略形だと-をつけて、長いオプションだと--をつける。
ハイフンを使わないでオプション?引数?を指定したり、ハイフンありなしで意味が違うこともあるらしい
$ ps aと$ ps -a とか
ハイフンがないオプションもある?ハイフンがないのは全部引数?? ?よくわからん
コマンド実行したら進まなくなった?
アップデートとかは普通に一旦待とう
出力終了してコマンドラインに自動で戻らない場合、処理が進んでない場合のほか、コマンドの使い方によって入力待ち・待機状態になっているとかかもしれない($ tailとか)
参考:【総まとめ】linuxの強制終了方法を集めました
処理を中断
ctrl+C
処理を一時停止
ctrl+Z
$ ps(現在のセッションで?実行中のプロセス表示)でまだ残っていることがわかる、プロセスID(数字)を確認
$ kill PIDか$ kill -9 PIDで強制終了
セッション
あるログイン〜ログアウトの一連の状態みたいなことだと思っています
SSHクライアントの機能で、あるセッションを継続したまま別のセッションを始められる
「ログインし直して確認」みたいな作業は新しいセッションでやるといいかもしれない
$ suすると新しいセッションになる。
$ exitでセッションを終わる(ログアウト)
シェルについて
詳しい人に聞こう
われわれの要求をOSに伝えるプログラムのこと。同じ要求をするのに同じやり方(コマンド)でできる場合もあるし、プログラム(シェル)ごとに別のコマンドが必要な場合もあるらしい
bashというシェルがLinuxの標準なので、普通はこれ使えばよいらしい。記事読む時はどのシェルのことか確認しよう。
$ echo $SHELLで今のログインシェル(ログイン時のシェル)を確認できる。
$ bashでbashに切り替えたり、$ shでshに切り替えたりできる。
$ echo $0で今使っているシェルを確認できる。
https://qiita.com/P-man_Brown/items/c94776b6898302208b37
シェルが違うとプロンプトの表示$とかが違うことがあるけど、この表示は変えられるらしいので見た目はそんなにあてにならないらしい
-bashと表示されたら、ログインシェルとしてbashが今起動しているという意味らしい?
シェルを切り替えた時も、$ exitで終了。
ほか参考
コマンドプロンプト - HackMD
早速ポチポチする
↓
次:自鯖建立 2:SSH接続でのログイン方法を多少安全にする(公開鍵認証)